﻿Imports System.ComponentModel

Public Interface IEditCommand

    ReadOnly Property Comment As String

    Sub Undo()
    Sub Redo()

    Sub Execute(ByVal context As Object)
End Interface

Public Interface IEditCommand(Of T)
    Inherits IEditCommand


    Overloads Sub Execute(ByVal context As T)
End Interface




Public NotInheritable Class EditCommands



End Class


Public NotInheritable Class Copy

    Private Shared copydata As IEnumerable

    Public Shared Sub Copy(ByVal objet As Object, ByVal ParamArray properties() As String)
        Dim d As New List(Of PropertyDescriptor)

        For Each s In properties
            d.Add(TypeDescriptor.GetProperties(objet)(s))
        Next

        copydata = From p In d Select p = p, v = p.GetValue(objet)
    End Sub
    Public Shared Sub Paste(ByVal objet As Object)

    End Sub
    Public Shared Sub PasteNew(ByVal objet As Object)

    End Sub
End Class